
$(document).ready(function() {
    $("#head").corner("3px");
    $("#foot").corner("3px");
    $("#page").corner("3px");
    carregarMenuProd();
    carregarMenuUsuariHead();
    loadingAjax();
    $('#cright').load('productes', {"op": 7}, function(data) {
        carregarPaginaPrincipal();
    });
});

function carregarProdDetalls() {
    $('#sendpunt').corner("3px");
    $('#send').corner("3px");
    $('#page div.prodDet').corner("3px");
    $('hr').corner("2px");
    $('#page div.prodDet div.addcar input').corner("3px");
    $('#comments div.nom span').corner("3px");
    $('#comments').corner("3px");
    $('#comments div.intro textarea').corner("3px");
    $('#comments div.text_comment').corner("3px");

    
    $('#send').click(function() {
        $('#comments').load('productes', {"id_prod": $("#comments").attr("value"), "comentari": $("#comment").val(), "op": 4}, function() {
            carregarProdDetalls();
        });
    });
    $('#sendpunt').click(function() {
        $('#puntuacio').load('productes', {"id_prod": $("#puntuacio").attr("value"), "punt": $("#menupunt").val(), "op": 6}, function() {
            carregarProdDetalls();
        });
    });
    
    options = {
        target:        '#head div.right',   // target element(s) to be updated with server response
        success:       carregarMenuUsuariHead,  // post-submit callback
        timeout:   10000
    };

    $("div.prodDet div.addcar form").submit(function() {
        if ($(this).validate().form()) {
            $(this).ajaxSubmit(options);
        }
        return false;
    });
    $("div.prodDet div.addcar form").validate({
        rules: {
            num: {
                required: true,
                number: true,
                min: 1,
                max: 1000
            }
        },
        messages: {
            num: {
                required: "",
                number: "",
                min: "El minim és una unitat",
                max: "El màxim és de 1000 unitats"
            }
        }
    });
    $('#menupunt').change(function() {
        $('#puntuacio').load('productes', {"id": $('#puntuacio').attr("value"), "punt": $("#menupunt option:selected").attr("value"), "op": 6}, function() {
            carregarProdDetalls();
        });
    });
}

function carregarProductes() {
    $("#page div.producte div.addcar input").corner("2px");
    $("#page div.producte div.addcar .boto").corner("10px");
    $("#page div.producte").corner("2px");
    $("#cright div.path").corner("3px bl br");
    $("#cright div.pagines span").corner("3px bl br");
    $("#cright div.paginesB span").corner("3px tl tr");
    $("#cright div.path span").click(function () {
        $('#cright').load('productes', {"id": $(this).attr("id"), "op": $(this).attr("op")}, function() {
            carregarProductes();
        });
    });
    mostrarProducte = function () {
        $('#cright').load('productes', {"id": $(this).attr("value"), "op": 3}, function(data) {
            carregarProductes();
            carregarProdDetalls();
            carregarPuntuacio();
        });
    }
    $("#page div.producte div.nomProd span").click(mostrarProducte);
    $("#page div.producte div.img img").click(mostrarProducte);

    options = {
        target:        '#head div.right',   // target element(s) to be updated with server response
        success:       carregarMenuUsuariHead,  // post-submit callback
        timeout:   10000
    };

    $("div.producte div.addcar form").submit(function() {
        if ($(this).validate().form()) {
            $(this).ajaxSubmit(options);
        }
        return false;
    });
    $("div.producte div.addcar form").validate({
        rules: {
            num: {
                required: true,
                number: true,
                min: 1,
                max: 1000
            }
        },
        messages: {
            num: {
                required: "",
                number: "",
                min: "El minim és una unitat",
                max: "El màxim és de 1000 unitats"
            }
        }
    });

}

function carregarMenuProd() {
    $('#menu ul').hide();
    $('#menu ul:first').show();
    $('#menu li span').click(function() {
        var checkElement = $(this).next();
        if(checkElement.is('ul') && checkElement.is(':visible')) {
            checkElement.slideUp('normal');
            return false;
        } else if(checkElement.is('ul') && !checkElement.is(':visible')) {
            $('#menu ul:visible').slideUp('normal');
            checkElement.slideDown('normal');
            return false;
        } else {
            $('#cright').load('productes', {"id": $(this).attr("id"), "op": 1}, function(data) {
                carregarProductes();
            });
        }
    });
    /*$('#cright').load('productes', {"id": $('#menu li:first span').attr("id"), "op": 1}, function(data) {
        carregarProductes();
    });*/
    $("#menu span").corner("3px");
    $("#menu li").corner("3px");
    $("#menu li ul li").click(function () {
        $('#cright').load('productes', {"id": $(this).attr("id"), "op": 0}, function(data) {
            carregarProductes();
        });
    });
}

function loadingAjax() {
    $.ajaxSetup({
        timeout: 15000
    });
    $("#loading").hide();
    $("#error").hide();
    $('#loading').ajaxStart(function() {
        $("#error").hide();
        $(this).show();
    });
    $('#loading').ajaxComplete(function() {
        $(this).hide();
    });
    $('#error').ajaxError(function(event, request, settings, exception) {
        $('#loading').hide();
        $(this).show();
        $(this).text(tipusError(request.status));
        //alert("Error: | " + exception + " | " + event + " | " + request.status + " | " + settings + " | ");
    });
}

function recarregarAlLogin(cond) {
    carregarMenuUsuariHead();
    if ($('#comments').length != 0) {
        $('#comments').load('productes', {"id_prod": $("#comments").attr("value"), "op": 5}, function(data) {
            carregarProdDetalls();
        });
        $('#puntuacio').load('productes', {"id": $("#puntuacio").attr("value"), "op": 8}, function(data) {
            carregarProdDetalls();
        });
    }
    if ($('#page div.carrets').length != 0 && cond) {
        $('#cright').load('usuaris', {"op": 8}, function(data) {
            carregarPreferencies();
        });
    }
}

function carregarMenuUsuariHead() {
    $("#minimenu div").corner("3px");
    $("#nomUser").corner("3px");
    $("#menuCarret div.prods div").corner("3px");
    $("#menuOp").hide();

    $("#menuCarret div.prods div span.elim").click(function () {
        $("#head div.right").load('usuaris', {"id": $(this).attr("value"), "op": 5}, function(data) {
            carregarMenuUsuariHead();
        });
    });

    $("#menuCarret div.boto").click(function () {
        $("#head div.right").load('usuaris', {"op": $(this).attr("value")}, function(data) {
            carregarMenuUsuariHead();
        });
    });

    menuOpIn = function() {
        $("#nomUser").uncorner();
        //get the position of the placeholder element
        var posP = $("#nomUser").offset();
        var widthP = $("#nomUser").width();
        var heightP = $("#nomUser").height();
        var widthC = $("#menuOp").width();
        if (widthP <= widthC) {
            $("#nomUser").corner("3px top");
            $("#menuOp").corner("3px bl br tl")
        } else {
            $("#nomUser").corner("3px top bl");
            $("#menuOp").corner("3px bl br")
        }
        //show the menu directly over the placeholder
        $("#menuOp").css( {"left": (posP.left + widthP - widthC - 2) + "px", "top":(posP.top + heightP + 3) + "px"});
        $("#menuOp").show();
        $("#nomUser").css("background-color", "#C2C2C2");
    };
    menuOpOut = function() {
        $("#nomUser").css("background-color", "#A2BC13");
        $("#nomUser").uncorner();
        $("#nomUser").corner("3px");
        $("#menuOp").hide();
    };

    $("#nomUser").hover(menuOpIn, menuOpOut);
    $("#menuOp").hover(menuOpIn, menuOpOut);
    $("#menuOp div").corner("3px");
    
    $("#menuCarret").hide();
    menuCarretIn = function() {
        $("#carret").uncorner();
        //get the position of the placeholder element
        var posP = $("#carret").offset();
        var widthP = $("#carret").width();
        var heightP = $("#carret").height();
        var widthC = $("#menuCarret").width();
        $("#carret").corner("3px top");
        //show the menu directly over the placeholder
        $("#menuCarret").css( {"left": (posP.left + widthP - widthC - 2) + "px", "top":(posP.top + heightP) + "px"});
        $("#menuCarret").show();
        $("#carret").css("background-color", "#C2C2C2");
    };
    menuCarretOut = function() {
        $("#carret").uncorner();
        $("#carret").corner("3px");
        $("#menuCarret").hide();
        $("#carret").css("background-color", "#A2BC13");
    };

    $("#carret").hover(menuCarretIn, menuCarretOut);
    $("#menuCarret").hover(menuCarretIn, menuCarretOut);
    $("#menuCarret").corner("3px bl br tl")
    $("#menuCarret div.boto").corner("3px")

    $("#user").corner("3px");
    $("#pass").corner("3px");
    focusinU = function() {
        if($(this).val() == "Correu Electronic") {
            $(this).val("");
        }
        $(this).css("color","#666666");
    };
    focusoutU = function() {
        if($(this).val() == "") {
            $(this).val("Correu Electronic");
        }
    };
    focusinP = function() {
        if($(this).val() == "Password") {
            this.setAttribute("type", "password");
            $(this).val("");
        }
        $(this).css("color","#666666");
    };
    focusoutP = function() {
        if($(this).val() == "") {
            this.setAttribute("type", "text");
            $(this).val("Password");
        }
    };
    $("#pass").focusin(focusinP);
    $("#pass").focusout(focusoutP);
    $("#user").focusin(focusinU);
    $("#user").focusout(focusoutU);
    $("#botoLI").corner("3px");
    $("#botoLI").click(function() {
        user = $("#user").val();
        pass = $("#pass").val();
        if(user != "" && user != "Correu Electronic" && pass != "" && pass != "Password") {
            $("#head div.right").load('usuaris', {"user": user, "pass": pass, "op": 0}, function(data) {
                carregarMenuUsuariHead()
                recarregarAlLogin(true);
            });
        } else {
            $("#user").css("color","#ff0000");
            $("#pass").css("color","#ff0000");
        }
    });

    $('#sortir').click(function() {
        $('#head div.right').load('usuaris', {"op": 1}, function(data) {
            carregarMenuUsuariHead()
            recarregarAlLogin(false);
        });
    });


    $('#pref').click(function() {
        $('#cright').load('usuaris', {"op": 8}, function(data) {
            carregarPreferencies();
        });
    });

    $("#reg").click(function() {
        $('#cright').load('usuaris', {"op": 2}, function(data) {
            carregarRegistrar();
        });
    });
}

function carregarRegistrar() {
    $("#missatge").hide();
    $("#cright div.path").corner("3px bl br");
    $("#missatge").corner("3px");
    $("form div").corner("3px");
    $("form div input").corner("3px");
    $("form div select").corner("3px");
    $("form div.botons span.boto").corner("3px");
    options = {
        target:        '#missatge',   // target element(s) to be updated with server response
        beforeSubmit:  validarFromReg,  // pre-submit callback
        success:       respostaReg,  // post-submit callback

        // other available options:
        //url:       url         // override for form's 'action' attribute
        //type:      type        // 'get' or 'post', override for form's 'method' attribute
        //dataType:  null        // 'xml', 'script', or 'json' (expected server response type)
        clearForm: true,        // clear all form fields after successful submit
        resetForm: true,        // reset the form after successful submit

        // $.ajax options can be used here too, for example:
        timeout:   10000
    };

    $("#registrar").submit(function() {
        $(this).ajaxSubmit(options);
        return false;
    });
    $("#registrar").validate({
        rules: {
            password2: {
                minlength: 4
            },
            password: {
                minlength: 4
            },
            cp: {
                minlength: 5
            },
            banc: {
                minlength: 4
            },
            oficina: {
                minlength: 4
            },
            dc: {
                minlength: 2
            },
            cc: {
                minlength: 10
            }
        },
        messages: {
            nom: {
                required: ""
            },
            cognoms: {
                required: ""
            },
            dia: {
                number: ""
            },
            mes: {
                number: ""
            },
            any: {
                number: ""
            },
            adreca: {
                required: ""
            },
            poblacio: {
                required: ""
            },
            cp: {
                required: "",
                number: "Ha de ser un número"
            },
            pais: {
                number: "Sel·leciona un pais"
            },
            banc: {
                required: "",
                number: "Ha de ser un número"
            },
            oficina: {
                required: "",
                number: "Ha de ser un número"
            },
            dc: {
                required: "",
                number: "Ha de ser un número"
            },
            cc: {
                required: "",
                number: "Ha de ser un número"
            },
            email: {
                required: "",
                email: "Format: nom@domini.cat"
            },
            email2: {
                required: "",
                email: "Format: nom@domini.cat"
            },
            telefon: {
                required: "",
                number: "Ha de ser un número"
            },
            password: {
                required: ""
            },
            password2: {
                required: ""
            }
        }
    });
}

function respostaReg(responseText, statusText, xhr, $form)  {
    $("#missatge").show();
}

function validarFromReg()  {
    if ($("#rPas").val() != $("#rPas2").val()) {
        alert("Les contrasenyes no són iguals");
        return false;
    }
    if ($("#rMail").val() != $("#rMail2").val()) {
        alert("Les adreçes de correu electronic no són iguals");
        return false;
    }
    return $("#registrar").validate().form();
}

function carregarPreferencies() {
    $("#cright div.path").corner("3px bl br");
    $("#page div.carret").corner("3px");
    $("#page div.carretT").corner("3px");
    $("#detalls").corner("3px");
    $("#page div.carret div").corner("3px");

    $("#page div.carret div.mirar").click(function () {
        $('#detalls').load('usuaris', {"op": 9, "id": $(this).parent().attr("value")});
        $("#page div.carret").css("border", "none");
        $(this).parent().css("border", "1px solid #C2C2C2");
    });

    $("#page div.carret div.activar").click(function () {
        $("#cright").load('usuaris', {"op": 10, "id": $(this).parent().attr("value")}, function() {
            carregarPreferencies();
            $("#head div.right").load('usuaris', {"op": 11}, function(data) {
                carregarMenuUsuariHead()
                recarregarAlLogin();
            });
        });
    });
}

function carregarPaginaPrincipal() {
}
